﻿#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>

using namespace std;

//将句子排序
//https://leetcode.cn/problems/sorting-the-sentence/
// char* sortSentence(char* s)
// {
    // int slen = strlen(s);
    // char* tmp = (char*)malloc(sizeof(char) * slen);
    // int i = 0;
    // int ssum = 0;
    // //计算字符串数
    // for (i = 0; i < slen; ++i)
    // {
        // int ch = s[i];
        // if (ch > 48 && ch < 58)
        // {
            // ssum++;
        // }
    // }
    // //开始找单词并写入数组
    // int t = 0;
    // for (int j = 1; j <= ssum; ++j)
    // {
        // for (i = 0; i < slen; ++i)
        // {
            // int ch = s[i] - '0';
            // if (ch == j)//按顺序找单词
            // {
                // int k = i-1;
                // //找到单词的开头
                // while (k > 0 && s[k-1] != ' ')
                // {
                    // k--;
                // }
                // //复制单词到辅助数组
                // while (k < i)
                // {
                    // tmp[t++] = s[k++];
                // }
                // //单词后加空格
                // tmp[t++] = ' ';
                // break;
            // }
        // }
    // }
    // --t;
    // tmp[t] = '\0';
    // while(t>=0)
    // {
        // s[t]=tmp[t];
        // --t;
    // }
    // free(tmp);
    // return s;
// }



//最长和谐子序列
//https://leetcode.cn/problems/longest-harmonious-subsequence/
// int findLHS(int* nums, int numsSize)
// {
    // int num = 0;
    // if (numsSize == 1)
        // return 0;

    // int i = 0;
    // //当数据过大时先进行预判断
    // if(abs(nums[0])>1000000)
    // {
        // int flag = 1;
        // for(i=0;i<numsSize-1;++i)
        // {
            // if(abs(nums[i]-nums[i+1])==1)
            // {
                // flag = 0;
                // break;
            // }
        // }
        // if(flag)
            // return 0;
    // }
    

    // int max = nums[1], min = nums[1];
    // for (i = 0; i < numsSize; ++i)
    // {
        // if (nums[i] > max)
        // {
            // max = nums[i];
        // }
        // if (nums[i] < min)
        // {
            // min = nums[i];
        // }
    // }

    // //判断数组中是否全为单值
    // if ((max - min) == 0)
        // return 0;

    // int range = max - min + 2;
    // int* tmp = (int*)calloc(range,sizeof(int));
    // for (i = 0; i < numsSize; ++i)
    // {
        // tmp[nums[i] - min + 1]++;
    // }
    // for (i = 0; i < range - 1; ++i)
    // {
        // if(tmp[i]&&tmp[i+1])
        // {
            // int s = tmp[i] + tmp[i + 1];
            // if (s > num)
            // {
                // num = s;
            // }
        // }
    // }
    // free(tmp);
    // return num;
// }